﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
// Copyright (C) 2022 kingerrobot
// 版权所有。 
//
// 文件名：IRcsEquipCuring
// 文件功能描述：
//
// 创建者：名字 (zzl)
// 时间：2022/1/19 13:52:14
//
// 修改人：
// 时间：
// 修改说明：
// 版本：V1.0.0
//----------------------------------------------------------------*/
#endregion
namespace KingerRobot.MexicoSailunMDC.SpiService;

public interface IRcsEquipCuring
{
    /// <summary>
    /// 获取所有硫化机
    /// </summary>
    /// <returns></returns>
    List<PORcsEquipCuring> GetAllEquipCurings();
    /// <summary>
    /// 通过MES左右模获取字符串
    /// </summary>
    /// <param name="equipModel"></param>
    /// <returns></returns>
    string GetCuringRLByMesModel(int equipModel);
    /// <summary>
    /// 通过MES左右模获取 标识
    /// </summary>
    /// <param name="equipModelRL"></param>
    /// <returns></returns>
    int GetCuringRLByMesModelRL(string equipModelRL);
    /// <summary>
    /// 通过MES左右模获取硫化机位置ID
    /// </summary>
    /// <param name="equipNo"></param>
    /// <param name="equipModel"></param>
    /// <returns></returns>
    (long, long) GetCuringLocByMESRL(string equipNo, int equipModel);
    /// <summary>
    /// 修改已喷涂数量
    /// </summary>
    /// <param name="equipCode"></param>
    /// <returns></returns>
    int UpdateCuringSpare(string equipCode);
    /// <summary>
    /// 获取所有硫化机喷涂信息
    /// </summary>
    /// <returns></returns>
    List<POWcsEquipCuringSpare> GetCuringSpares();
    /// <summary>
    /// 通过编号获取硫化位
    /// </summary>
    /// <param name="curingCode"></param>
    /// <returns></returns>
    List<PORcsEquipCuring> GetEquipCuringsByCode(string curingCode);
    /// <summary>
    /// 获取硫化位
    /// </summary>
    /// <param name="curingCode"></param>
    /// <returns></returns>
    List<PORcsEquipCuring> GetEquipCurings();
    /// <summary>
    /// 通过编号列表获取硫化位
    /// </summary>
    /// <param name="curingCodes"></param>
    /// <returns></returns>
    List<PORcsEquipCuring> GetEquipCuringsByCodes(List<string> curingCodes);
    /// <summary>
    /// 通过硫化Id 获取可用硫化信息
    /// </summary>
    /// <param name="curingId">硫化机</param>
    /// <returns></returns>
    PORcsEquipCuring GetCuringByCuringId(long curingId);
    /// <summary>
    /// 通过硫化Id 获取所有硫化信息
    /// </summary>
    /// <param name="curingId">硫化机</param>
    /// <returns></returns>
    PORcsEquipCuring GetAllCuringByCuringId(long curingId);
    /// <summary>
    /// 通过硫化Ids 获取硫化信息
    /// </summary>
    /// <param name="curingIds"></param>
    /// <returns></returns>
    List<PORcsEquipCuring> GetCuringByCuringIds(List<long> curingIds);
    /// <summary>
    /// 获取硫化机（包含禁用）
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    PORcsEquipCuring GetCuringById(long id);
    /// <summary>
    /// 修改硫化机流水号
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    int UpdateCuringCallNo(long id, int CallNo);
    /// <summary>
    /// 硫化机设备 - 获取硫化机左右模
    /// </summary>
    /// <param name="curingId">硫化机</param>
    /// <returns></returns>
    CuringLRDTO GetCuringRLByCuringId(long curingId);
    /// <summary>
    /// 硫化机位置 - 获取硫化机左右模
    /// </summary>
    /// <param name="curingId">硫化机</param>
    /// <returns></returns>
    CuringLRDTO GetCuringRLByCuringLocId(long curingLocId);

    /// <summary>
    /// 获取硫化机左右模
    /// </summary>
    /// <param name="curing"></param>
    /// <returns></returns>
    CuringLRDTO GetCuringRLReault(PORcsEquipCuring curing);
    /// <summary>
    /// 是否配对
    /// </summary>
    /// <param name="targetLoc">硫化机</param>
    /// <param name="otherTargetLoc">其他硫化机</param>
    /// <returns></returns>
    bool IsPairCuring(long targetLoc, long otherTargetLoc);

    /// <summary>
    /// 获取硫化机另一半
    /// </summary>
    /// <param name="curingId"></param>
    /// <returns></returns>
    long? GetOtherHalfCuring(long targetLoc);

    /// <summary>
    /// 更新硫化机请料时间
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    int UpdateCuringCallTime(long id);

    /// <summary>
    /// 更新硫化机请料备注(记录请料失败原因)
    /// </summary>
    /// <param name="id"></param>
    /// <param name="Remark"></param>
    /// <returns></returns>
    int UpdateCuringCallRemark(long id, string Remark);
}